1. Field of the Invention
The present invention is generally directed to computing operations performed in computing systems, and more particularly directed to graphics processing tasks performed in computing systems.
2. Related Art
A graphics processing unit (GPU) is a complex integrated circuit that is specially designed to perform graphics processing tasks. A GPU can, for example, execute graphics processing tasks required by an end-user application, such as a video game application. In such an example, there are several layers of software between the end-user application and the GPU.
The end-user application communicates with an application programming interface (API). An API allows the end-user application to output graphics data and commands in a standardized format, rather than in a format that is dependent on the GPU. Several types of APIs are commercially available, including DirectX® developed by Microsoft Corp. and OpenGL® developed by Silicon Graphics, Inc. The API communicates with a driver. The driver translates standard code received from the API into a native format of instructions understood by the GPU. The driver is typically written by the manufacturer of the GPU. The GPU then executes the instructions from the driver.
A GPU produces the pixels that make up an image from a higher level description of its components in a process known as rendering. GPUs typically utilize a concept of continuous rendering by the use of pipelines to processes pixel, texture, and geometric data. These pipelines are often referred to as a collection of fixed function special purpose pipelines such as rasterizers, setup engines, color blenders, hieratical depth, texture mapping and programmable stages that can be accomplished in shader pipes or shader pipelines, “shader” being a term in computer graphics referring to a set of software instructions used by a graphic resource primarily to perform rendering effects. In addition, GPUs can also employ multiple programmable pipelines in a parallel processing design to obtain higher throughput. A multiple of shader pipelines can also be referred to as a shader pipe array.
In addition, GPUs also support a concept known as texture mapping. Texture mapping is a process used to determine the texture color for a texture mapped pixel through the use of the colors of nearby pixels of the texture, or texels. The process is also referred to as texture smoothing or texture interpolation. However, high image quality texture mapping requires a high degree of computational complexity.
In addition, GPUs equipped with a Unified Shader also simultaneously support many types of shader processing, from pixel, vertex, primitive, surface and generalized compute are raising the demand for higher performance generalized memory access capabilities.
Texture filters rely on high speed access to local cache memory for pixel data. However, the use of dedicated local cache memory for texture filters typically precludes the use of more general purpose shared memory. While general purpose shared memory is more flexible, it typically has slower response time and hence is less performant.
Given the ever increasing complexity of new software applications, the demands on GPUs to provide efficient and high quality rendering, texture filtering and error correction are also increasing.
What are needed, therefore, are systems and/or methods to alleviate the aforementioned deficiencies. Particularly, what is needed is a distributed level one cache system for each texture filter combined with a centralized, sharable level two cache system.